Loop definitions file
A .csv file containing loop information for each loop to be added to the Action Object needs to be created before the Action Object can be added to the CSense Runtime Manager for deployment. This will typically be created by an engineer or by plant personnel familiar with the plant control structure and system.
The properties of different tags within each loop, as well as the information required for loop monitoring are listed in the loop definitions file. Process+ monitors the performance of some tags and plot these values on graphs.
You can create a loop definition file as follows:
Writing Loop Statistics and Loop Configuration to Historian tags
The loop definitions .csv file can also be used to specify loop statistics and loop configuration that should be written to Proficy Historian tags when the Action Object is added to the CSense Runtime Manager for deployment.
To write to Historian tags, include the following in your .csv file:
-
The property headers that specify the required loop statistics or loop configuration to be written to Historian tags.
-
Properties which will be written to Historian tags have headers that start with "Out...", or "Out Value...".
-
They are specified as Historian tags in the Description column of the Loop Properties table that follows.
-
These properties are optional.
-
-
The corresponding string values that represent the destination tag ID in Proficy Historian.
-
If the specified destination tag exists in Proficy Historian, it will be updated.
-
If the specified destination tag does not exist in Proficy Historian, it will be created.
-
If the value for a Historian tag ID is empty, the property will be ignored.
-
If you include loop statistics and loop configuration that should be written to Proficy Historian tags, then a dialog will open up to enable you to configure an Historian connection when you attempt to deploy the action object.
Loop input and output mappings created from the .csv file specifications can be viewed in the control loop properties.
Notes:
Historian connection failures or write failures will not stop Process+ statistic calculations.
Errors are reported in the event logs.Writing loop statistics and loop configuration to Historian tags is not available for ad-hoc Process+ action objects.
Loop Properties
Headers |
Description |
Field type |
Values |
Adjustable? |
Optional or Mandatory in the File? |
KPI Name |
LoopID |
Loop ID within the control system |
Integer |
First time deployment of the loop: automatically generated by the control system. Redeployment of the loop: the LoopID must be read off the .csv file from the initial deployment of the loop, then manually entered into the new .csv file LoopID column. |
No |
Optional |
NA |
LoopName |
Descriptive name of loop |
String |
Each name must be unique. |
Yes |
Mandatory |
NA |
LowerSPOffset |
Lower set point offset - user defined offset from the defined set point value |
Double |
User defined. Limited to the minimum and maximum value of a double. The offset cannot be negative. The lower and upper offset values do not need to equal each other. The lower offset can be greater than the upper offset. |
Mandatory |
NA | |
UpperSPOffset |
Upper set point offset - user defined offset from the defined set point value |
Double |
User defined. Limited to the minimum and maximum value of a double. The offset cannot be negative. The lower and upper offset values do not need to equal each other. |
Mandatory |
NA | |
LowerPVLimit |
Lower process variable limit - physical lower limit of the system |
Double |
Limited by the physical constraints of the process. Limited to the minimum and maximum value of a double, including negative values. The lower limit cannot be greater than the upper limit. |
Mandatory |
NA | |
UpperPVLimit |
Upper process variable limit - physical upper limit of the system |
Double |
Limited by the physical constraints of the process. Limited to the minimum and maximum value of a double, including negative values. The lower limit cannot be greater than the upper limit. |
Mandatory |
NA | |
SamplingPeriod |
Rate at which data is sampled |
Integer |
All the loops defined in one .csv file must have the same sampling period. Minimum value=1 second. Values must be positive. No maximum value. |
No |
Mandatory |
NA |
TagSP |
Set point tag |
String |
Mandatory tag. Minimum value=1 character. Maximum value = limited by the source tag it is reading from, and no more than 256 characters. |
No |
Mandatory |
NA |
TagPV |
Process variable tag |
String |
Mandatory tag. Minimum value=1 character. Maximum value = limited by the source tag it is reading from, and no more than 256 characters. |
No |
Mandatory |
NA |
TagMV |
Manipulated variable tag |
String |
Mandatory tag. The MV tag must always be expressed as a percentage in the range between 0 and 100. Minimum value=0. Maximum value = 100. If values outside this range are input to the system, the values will be clipped to either 0 or 100. |
No |
Mandatory |
NA |
TagP |
Controller Proportional tag |
String |
Optional tag. Minimum value=1 character. Maximum value = limited by the source tag it is reading from, and no more than 256 characters. |
No |
Mandatory |
NA |
TagI |
Controller Integral tag |
String |
Optional tag. Minimum value=1 character. Maximum value = limited by the source tag it is reading from, and no more than 256 characters. |
No |
Mandatory |
NA |
TagD |
Controller Derivative tag |
String |
Optional tag. Minimum value=1 character. Maximum value = limited by the source tag it is reading from, and no more than 256 characters. |
No |
Mandatory |
NA |
TagF |
Controller Filter tag |
String |
Optional tag. Minimum value=1 character. Maximum value = limited by the source tag it is reading from, and no more than 256 characters. |
No |
Mandatory |
NA |
- TagVV - TagWW - TagXX - TagYY - TagZZ |
Tags used for creating control mode rules. |
Double |
Optional tags used to determine loop control mode. Minimum value=1 character. Maximum value = limited by the source tag it is reading from, and no more than 256 characters each. |
No |
Mandatory |
NA |
TagPEnabled |
Indicates whether the Controller Proportional tag is enabled |
Integer |
Can only be set as enabled (1) or not enabled (0). |
Yes |
Mandatory |
NA |
TagIEnabled |
Indicates whether the Controller Integral tag is enabled |
Integer |
Can only be set as enabled (1) or not enabled (0). |
Yes |
Mandatory |
NA |
TagDEnabled |
Indicates whether the Controller Derivative tag is enabled |
Integer |
Can only be set as enabled (1) or not enabled (0). |
Yes |
Mandatory |
NA |
TagFEnabled |
Indicates whether the Controller Filter tag is enabled |
Integer |
Can only be set as enabled (1) or not enabled (0). |
Yes
|
Mandatory |
NA |
LoopDescription |
A description of the loop |
String |
Optional. No more than 2048 characters. |
Yes |
Mandatory |
NA |
LoopPriority |
Assign a priority to the loop |
String |
No more than 256 characters. |
Yes |
Optional |
NA |
Plant |
Assign a Plant to which the loop belongs |
String |
No more than 256 characters. |
Yes |
Optional |
NA |
Section |
Assign a Section to which the loop belongs |
String |
No more than 256 characters. |
Yes |
Optional |
NA |
Group |
Assign a Group to which the loop belongs |
String |
No more than 256 characters. |
Yes |
Optional |
NA |
OutLowerSPOffset |
Tag in Proficy Historian where the lower set point offset will be written. The lower set point offset is the user-defined offset from the defined set point value. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
NA |
OutUpperSPOffset |
Tag in Proficy Historian where the upper set point offset will be written. The upper set point offset is the user-defined offset from the defined set point value. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
NA |
OutLowerPVLimit |
Tag in Proficy Historian where the lower process variable limit will be written. The lower process variable limit is the physical lower limit of the system. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
NA |
OutUpperPVLimit |
Tag in Proficy Historian where the upper process variable limit will be written. The upper process variable limit is the physical upper limit of the system. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
NA |
OutConfiguration |
Tag in Proficy Historian where the loop configuration will be written. |
String (XML) |
Historian type: String |
No |
Optional |
NA |
OutValuePercentageManual |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Manual control mode. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Manual (%) |
OutValuePercentageManualLLExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Manual control mode and exceeding the lower limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Manual Lower Limit % |
OutValuePercentageManualULExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Manual control mode and exceeding the upper limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Manual Upper Limit % |
OutValuePercentageAuto |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Auto control mode. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Auto (%) |
OutValuePercentageAutoLLExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Auto control mode and exceeding the lower limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Auto Lower Limit % |
OutValuePercentageAutoULExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Auto control mode and exceeding the upper limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Auto Upper Limit % |
OutValuePercentageCascade |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Cascade control mode. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Cascade (%) |
OutValuePercentageCascadeLLExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Cascade control mode and exceeding the lower limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Cascade Lower Limit % |
OutValuePercentageCascadeULExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Cascade control mode and exceeding the upper limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Cascade Upper Limit % |
OutValuePercentageShutdown |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Shutdown control mode. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Shutdown (%) |
OutValuePercentageShutdownLLExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Shutdown control mode and exceeding the lower limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Shutdown Lower Limit % |
OutValuePercentageShutdownULExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Shutdown control mode and exceeding the upper limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Shutdown Upper Limit % |
OutValueNumberOfSamples |
Tag in Proficy Historian where the Number of Samples statistic will be written. |
String |
No more than 256 characters in the String. Historian type: DoubleInteger |
No |
Optional |
No. of samples |
OutValuePercentageControlOn |
Tag in Proficy Historian where the percentage of time will be written that data is not of bad quality. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
%Time when control on |
OutValuePercentageControllerOutput |
Tag in Proficy Historian where the Percentage Controller Output statistic will be written. The Percentage Controller Ouput is the average manipulated variable, expressed as a percentage. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Manipulated Variable [%] |
OutValuePercentageNotUtilized |
Tag in Proficy Historian where the % Not Utilized statistic will be written. The % Not Utilized is the percentage of the reporting period for which the loop is not in use. The loop is considered to be not in use if it is in manual mode or if the controller output is saturated. The controller output is considered saturated when the MV has a value of 0 (the lower limit for controller output saturation) or 100 (the upper limit for controller output saturation). Only data of good quality is taken into account. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Duration Not Utilized [%] |
OutValuePercentageMVSaturation |
Tag in Proficy Historian where the Percentage MV Saturation statistic will be written. The Percentage MV Saturation is the percentage of the reporting period for which the controller output is saturated. The controller output is considered saturated when the MV has a value of 0 (the lower limit for controller output saturation) or 100 (the upper limit for controller output saturation). Only data of good quality is taken into account. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
MV Saturation [%] |
OutValueOverallPerformance |
Tag in Proficy Historian where the Overall Performance statistic will be written. The Overall Performance statistic is a statistic composed of the following elements in the following proportions: - 1/3: Percentage of the reporting period for which any loop limits (except shutdown limits) are exceeded. - 1/3: Percentage of the reporting period for which the loop operates in manual control mode. - 1/3: Percentage of the reporting period for which the controller output is saturated. The controller output is considered saturated when the MV has a value of 0 (the lower limit for controller output saturation) or 100 (the upper limit for controller output saturation). Only data of good quality is taken into account. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
OverallPerformance |
OutValueMovementIndex |
Tag in Proficy Historian where the Movement Index statistic will be written. The Movement Index gives an indication of the absolute sum of all changes made in the manipulated variable. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Total MV Movement |
OutValueControlAmplitude |
Tag in Proficy Historian where the Control Amplitude statistic will be written. The Control Amplitude gives an indication of the average amount of movement in the manipulated variable. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Average MV Change [%] |
OutValueReverseIndex |
Tag in Proficy Historian where the Reverse Index statistic will be written. The Reverse Index indicates the number of times that the manipulated variable changes its direction. |
String |
No more than 256 characters in the String. Historian type: DoubleInteger |
No |
Optional |
MV Oscillation Count [#] * 2 |
OutValueReverseAmplitude |
Tag in Proficy Historian where the Reverse Amplitude statistic will be written. The Reverse Amplitude gives an indication of the average amount of movement in the manipulated variable before changing direction. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Average Oscillation Amplitude [%] |
OutValueIntegratedSum |
Tag in Proficy Historian where the Integrated Sum statistic will be written. The Integrated Sum is the absolute sum of all differences between the process variable and the set point. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Integrated Error |
OutValueAverage |
Tag in Proficy Historian where the Average Error statistic will be written. This is the average tag error, where the tag error is the difference between process variable and set point. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Average Error |
OutValueStdDeviation |
Tag in Proficy Historian where the Standard Deviation will be written. This is the standard deviation of the tag error, where the tag error is the difference between process variable and set point. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Error Std Deviation |
OutValuePercentagePVVariance |
Tag in Proficy Historian where the Percentage PV Variance will be written. The Percentage PV Variance is a measure of the deviation of the PV from the average PV, expressed as a percentage of the reporting period. See the statistical equation given below this table for how this is calculated. Only data of good quality is taken into account. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
PV Variance [%] |
OutValuePVVariability |
Tag in Proficy Historian where the PV Variability will be written. The PV Variability is a measure of how spread or closely clustered the PV data set is, expressed as a percentage. See the statistical equation given below this table for how this is calculated. Only data of good quality is taken into account. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
PV Variability |
OutValuePercentageGoodQuality |
Tag in Proficy Historian that stores the Percentage of Good Quality statistic. The Percentage of Good Quality indicates the percentage of time that the data is not of bad quality. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Good Quality Data (%) |
OutValuePIDFChanges |
Tag in Proficy Historian where the PIDF (proportional, integral, derivative, and filter) changes will be written. The PIDF changes statistic is the sum of the number of times any of the PIDF values have changed. |
String |
No more than 256 characters in the String. Historian type: DoubleInteger |
No |
Optional |
PIDF Configuration Changes |
OutValueAverageAbsoluteError |
Tag in Proficy Historian where the Average Absolute Error statistic will be written. This is the average absolute value of the tag error, where the tag error is the difference between process variable and set point. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Average Absolute Error |
OutValueFFTPeriodPeak1 |
Tag in Proficy Historian where the 1st FFT Period Peak will be written. This is the period (in seconds) of the frequency with the highest associated amplitude on the FFT graph for the reporting period. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Period (Seconds) |
OutValueFFTPeriodPeak2 |
Tag in Proficy Historian where the 2nd FFT Period Peak will be written. This is the period (in seconds) of the frequency with the second highest associated amplitude on the FFT graph for the reporting period. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Period (Seconds) |
OutValueFFTPeriodPeak3 |
Tag in Proficy Historian where the 3rd FFT Period Peak will be written. This is the period (in seconds) of the frequency with the third highest associated amplitude on the FFT graph for the reporting period. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Period (Seconds) |
OutValueFFTPowerPercentagePeak1 |
Tag in Proficy Historian where the 1st FFT Peak Percentage Power will be written. This is the power for the point in the FFT graph for which the amplitude is highest, expressed as a percentage of the total power in the frequency spectrum of the FFT for the reporting period. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Strength (%power) |
OutValueFFTPowerPercentagePeak2 |
Tag in Proficy Historian where the 2nd FFT Peak Percentage Power will be written. This is the power for the point in the FFT graph for which the amplitude is second highest, expressed as a percentage of the total power in the frequency spectrum of the FFT for the reporting period. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Strength (%power) |
OutValueFFTPowerPercentagePeak3 |
Tag in Proficy Historian where the 3rd FFT Peak Percentage Power will be written. This is the power for the point in the FFT graph for which the amplitude is third highest, expressed as a percentage of the total power in the frequency spectrum of the FFT for the reporting period. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Strength (%power) |
OutValuePercentageLimitsExceeded |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Manual, Auto or Cascade control mode and exceeding the upper or lower limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
Limits Exceeded (%) |
OutValuePerformanceIndex |
Tag in Proficy Historian where the percentage of time will be written that the PV spends operating in the Auto or Cascade control mode and exceeding the upper or lower limit. |
String |
No more than 256 characters in the String. Historian type: DoubleFloat |
No |
Optional |
PerformanceIndex |
OutValuePValueStartOfReport |
Tag in Proficy Historian where it is the TagP value at the beginning of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report Start (Actual)- P |
OutValueIValueStartOfReport |
Tag in Proficy Historian where it is the TagI value at the beginning of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report Start (Actual)- I |
OutValueDValueStartOfReport |
Tag in Proficy Historian where it is the TagD value at the beginning of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report Start (Actual)- D |
OutValueFValueStartOfReport |
Tag in Proficy Historian where it is the TagF value at the beginning of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report Start (Actual)- F |
OutValuePValueEndOfReport |
Tag in Proficy Historian where it is the TagP value at the end of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report End (Actual)- P |
OutValueIValueEndOfReport |
Tag in Proficy Historian where it is the TagI value at the end of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report End (Actual)- I |
OutValueDValueEndOfReport |
Tag in Proficy Historian where it is the TagD value at the end of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report End (Actual)- D |
OutValueFValueEndOfReport |
Tag in Proficy Historian where it is the TagF value at the end of the reporting period. |
String |
Historian type: String |
No |
Optional |
Report End (Actual)- F |
Statistical Equations for Historian Tags Referenced
Some of the loop information specified in the loop definitions CSV file refers to tags in Proficy Historian where statistics are written. The following explanations are given for some of the statistics where an equation may be needed to clarify what the statistic represents.
Percentage PV Variance
The Percentage PV Variance is calculated as:
where
-
PVaverage is the average for the PV during the reporting period.
-
xi is an individual PV measurement.
-
N is the number of samples in the reporting period.
-
span is the difference between the upper PV limit and the lower PV limit.
PV Variability
The PV Variability is calculated as:
where
-
PVaverage is the average for the PV during the reporting period.
Related topics: